ACM パブリック証明書機能で出来ること出来ないことをリスト化してみた
アノテーション、テクニカルサポートチームの村上です。
現在、ネットワークを経由するサービスにおいては暗号化がほぼ必須となっていることもあり、定期的に ACM 証明書関連のお問い合わせをいただきます。
本ブログでは、AWS Certificate Manager の ACM パブリック証明書機能(AWS Private CA を除く機能)について、今までいただいたご質問を振り返り、できることとできないことに分けてリスト化してみました。
「できること 2.」と「できないこと 4.」については、同じ内容なのですがあえて併記しています。
できることリスト
1. 以下の各種 AWS サービスと統合、連携しての利用
- Elastic Load Balancing
- Amazon CloudFront
- Amazon API Gateway
- AWS Nitro Enclaves
- AWS CloudFormation
- AWS Elastic Beanstalk
- Amazon Cognito
- AWS App Runner
- AWS Amplify
- Amazon OpenSearch Service
AWS Certificate Manager と統合されたサービス
2. Nginx と Apache をウェブサーバーとして実行する EC2 においての ACM パブリック証明書利用
※ Nitro Enclaves に対応している EC2 インスタンスタイプの利用が必要です。
2022 年 9 月 14 日より、Apache でも ACM パブリック証明書の利用が可能となりました。
3. サードパーティ証明書のインポートと展開
ACM パブリック証明書だけではなく、サードパーティ製の証明書も ACM へインポートしてご利用いただけます。
サードパーティが発行した TLS/SSL 証明書を ACM にインポートするにはどうすればよいですか。
サードパーティが発行した TLS/SSL 証明書を ACM にインポートするには、証明書、その秘密鍵、および証明書チェーンを提供する必要があります。
4. ACM パブリック証明書のマネージド証明書更新と自動適用
ドメイン検証用の CNAME レコードがホストゾーン(または DNS ネームサーバ)に登録されていて、かつ証明書が AWS サービスで利用されている必要があります。
証明書更新にあたり、証明書の Amazon リソースネーム (ARN) の変更はありません。
これらのサービスは、パブリック ACM 証明書とプライベート ACM 証明書の両方に対して提供されます。
5. 既存の通信接続へ影響をあたえず更新された証明書を適用する
自動更新された ACM 証明書が、ご利用中の AWS サービスへ適用される際に、既存の接続に影響が無いよう配慮がされています。
6. ACM への操作履歴を CloudTrail で記録する
CloudTrail を利用することで、ACM への操作履歴を確認することができます。
AWS Certificate Manager での CloudTrail の使用
CloudTrail で収集された情報を使用して、ACM に対するリクエスト、リクエスト元の IP アドレス、リクエスト者、リクエスト日時などの詳細を確認できます。
できないことリスト
1. ACM パブリック証明書とご自身でインポートした証明書のエクスポート
ご自身でインポートしたサードパーティ証明書もエクスポートできません。
パブリック証明書は、ACM で発行されたものでもインポートされたものでもエクスポートできません。
2. ACM パブリック証明書と紐づく秘密鍵のエクスポート
ACM パブリック証明書の秘密鍵もエクスポートできません。
ACM 証明書のプライベートキーをダウンロードすることはできません。
3. クライアント証明書への署名
AWS Client VPN でご利用中のクライアント証明書は、お客様ご自身で OpenVPN easy-rsa を利用して作成したものです。(AWS ドキュメント手順に従い作成した場合)
クライアント証明書を作成するには、AWS Private CA のご利用が必要となります。
4. Nginx と Apache 以外のウェブサーバーを実行する EC2 においての ACM パブリック証明書利用
できること 2. の裏返しとなりますが、2022/10/03 の時点では Nginx と Apache 以外のウェブサーバーによる ACM パブリック証明書の利用はできません。
他ウェブサーバーの利用が可能になったかのご確認は、下記 AWS ドキュメントに NGINX servers、Apache HTTP servers 以外のウェブサーバーが追加されているかをお確かめください。
Nitro Enclaves application: AWS Certificate Manager for Nitro Enclaves
Currently, ACM for Nitro Enclaves works with NGINX servers and Apache HTTP servers running on Amazon EC2 instances to install the certificate and seamlessly replace expiring certificates. Support for additional web servers will be added over time.
5. OV(企業認証)証明書、EV(Extended Validation) 証明書の発行
現在、ACM パブリック証明書に対応しているのはドメイン認証の証明書のみとなっております。
OV(企業認証)証明書、EV(Extended Validation) 証明書の利用が必要な場合は、サードパーティ証明書をご準備いただき ACM へインポートしていただく必要があります。
ACM は、拡張検証 (EV) 証明書または組織検証 (OV) 証明書を提供していません。
6. ACM へインポートしたサードパーティ証明書の自動更新
証明書の自動更新に対応しているのは、ACM 証明書のみとなります。
AWS Certificate Manager のよくある質問
インポートされた証明書の更新プロセスは、ACM で管理されません。インポートした証明書について、有効期限の監視と期限切れ前の更新は、ご自身で行ってください。
7. ACM パブリック証明書のリージョン間、アカウント間でのコピー
証明書のプライベートキーを暗号化する為に使用される KMS キーが、AWS リージョンおよび AWS アカウントごとに一意であるため ACM パブリック証明書のコピーはできません。
複数の AWS リージョンや AWS アカウントをまたいで同じドメインの ACM 証明書が必要な場合は、同じドメイン名で、リージョン毎、AWS アカウント毎の ACM 証明書を作成してご対応ください。
公開 ACM 証明書を他の AWS リージョンまたは AWS アカウントにエクスポートできますか?
ACM 証明書を 1 つの AWS リージョンから別の AWS リージョンに、または 1 つの AWS アカウントから別の AWS アカウントにエクスポートすることはできません。
まとめ
ACM パブリック証明書機能を利用して、何ができて何ができないかに迷った際は、上記リストをご活用ください。
なお、「できることリスト 2.」と「できないことリスト 4.」についての 2 つを併記した理由は、それだけ EC2 で ACM パブリック証明書が利用可能かというお問い合わせをいただく為です。
この記事がどなたかのお役に立てば幸いです。
参考資料
- AWS Certificate Manager と統合されたサービス
- ACM for Nitro Enclaves が Apache でも利用出来るようになりました
- サードパーティが発行した TLS/SSL 証明書を ACM にインポートするにはどうすればよいですか。
- DNS 検証を利用しての ACM 証明書自動更新が失敗した時の対処方法
- ACM 証明書のマネージド更新
- ALB の証明書を更新する時に通信遮断が発生するか教えてください
- AWS Certificate Manager での CloudTrail の使用
- 証明書のエクスポート
- ACM 証明書の特徴
- AWS Certificate Manager のよくある質問
- Nitro Enclaves application: AWS Certificate Manager for Nitro Enclaves
- 公開 ACM 証明書を他の AWS リージョンまたは AWS アカウントにエクスポートできますか?
- AWS Certificate Manager Private Certificate Authority は AWS Private Certificate Authority になりました